Digital subscriber line (DSL) technology provides high-speed data transfer between two modems across ordinary telephone lines, wherein digital data transfer rates from tens of Kbps to tens of Mbps are supported over standard (e.g., twisted pair) telephone lines, while still providing for plain old telephone service (POTS). Asynchronous Digital Subscriber Line (ΔDSL) and Very High Digital Subscriber Line (VDSL) have emerged as popular implementations of DSL systems, where ΔDSL is defined by American National Standard Institute (ANSI) standard T1.413 and International Telecommunication Union (ITU-T) standards G.992.3, G.992.5, and VDSL is defined by ANSI standard T1.424 and ITU-T standard G.993.1. ΔDSL, VDSL and other similar DSL systems (collectively referred to as “xDSL”) typically provide digital data transfer in a frequency range above the POTS band (e.g., about 300 Hz to 4 kHz), for example ΔDSL G.992.3 operates at frequencies from about 25 kHz to about 1.1 MHz.
Most DSL installations are operated as multicarrier systems using Discrete Multi Tone (DMT) modulation, in which data is transmitted by a plurality of subcarriers (tones), sometimes alternatively referred to as subchannels, sub-bands, carriers, or bins, with each individual subcarrier utilizing a predefined portion of the prescribed frequency range. In ΔDSL, for example, 256 subcarriers are used to transmit a DMT symbol, with each subcarrier having a bandwidth of 4.3125 kHz. The transmit digital data is encoded and modulated at the transmitter using Quadrature Amplitude Modulation (QAM) and Inverse Discrete Fourier Transform (IDFT) to create the modulated multicarrier signal for transmission along the DSL loop or channel, which is then demodulated at the receiving end and decoded to recover the transmitted data. The bits of data to be transmitted over each subcarrier are encoded as signal points in QAM signal constellations using an encoder or a bit mapping system. Signal constellations are then modulated onto the corresponding subcarrier. The total number of data bits transmitted over the channel is a sum of the bits transmitted by each subcarrier.
As in most types of communication systems, it is desirable to maximize the amount of data successfully transferred across the communication medium between DSL modems, sometimes referred to as the bit rate or data rate. The data rate, in turn, depends on the noise characteristics of a particular communication channel. In the case of DSL systems, a pair of modems is connected by a twisted pair of wires (sometimes referred to as a loop) that form the communication medium. In this situation, noise may be generated by signals on neighboring wire pairs (e.g., crosstalk noise) in a distributed telephony system, as well as by outside sources of Radio Frequency Interference (RFI) or other noise. The noise on a particular communication channel may be generally modeled or characterized as continuous noise or impulse noise or both. Continuous noise is sometimes modeled as Additive Gaussian Noise (AGN) with randomly distributed values of noise over time, whereas impulse noise is generally short bursts of relatively high levels of channel noise. Various mechanisms or techniques are employed in DSL and other communication systems to combat continuous and impulse noise and/or to correct noise-related data transfer errors.
Continuous noise is typically addressed by transmitting more data bits over subcarriers with small amounts of continuous noise, and fewer data bits over subcarriers with higher continuous noise. The allocation of data bits to particular subcarriers is sometimes referred to as bit allocation or bit distribution, wherein the bit distribution parameters may be set to accommodate particular continuous noise conditions on the channel. However, simply maximizing continuous noise protection by reducing the number of bits transmitted by specific sub-carriers may lead to non-optimal system data rate, since maximizing continuous noise protection in this way reduces the number of data bits on the subcarriers. Accordingly, DSL systems are initially setup with continuous noise protection (e.g., bit distribution) settings or parameters that are selected according to subcarrier noise assessments based on estimation of the channel noise during system initialization. While such approaches using fixed continuous noise protection settings provide a good continuous noise protection and high data transfer rates, communication channel continuous noise conditions tend to change over time. In this regard, if the continuous noise decreases, the fixed modulation parameters will suffice to protect against data errors, but potential increased data rates are not attained. Conversely, if the continuous noise increases, the previously set protection parameters may no longer be sufficient to provide adequate protection against data transfer errors in the channel.
In order to address this situation, DSL systems provide adaptive tuning of the bit distribution parameter settings to accommodate changing of continuous noise, including bit swapping, rate adaptation, and bandwidth repartitioning techniques, each of which involve changes to a number of modulation parameters. In a typical situation, the signal-to-noise ratio (SNR) for each subcarrier is measured during system initialization, and the maximum bit capacity of each subcarrier is determined. Once the transmission capability of the system is thus assessed, more bits (e.g., larger constellation sizes) are assigned onto subcarriers with higher SNR compared to subcarriers having lower SNR and the subcarrier relative transmit powers (gains) are set. DSL service is then begun and the subcarriers SNR are measured during data transmission; the bit re-distribution (bit swapping) being performed and subcarrier gains being adjusted according to changes in the subcarrier SNR measurements.
Bit swapping by itself does not change the total data rate of the communication channel, but serves to increase or maintain continuous noise immunity by reallocating data bits from noisy subcarriers to more noise-free subcarriers. Where the channel noise increases significantly, bit swapping alone may not be adequate to prevent data transmission errors, and seamless rate adaptation (SRA) may be employed to decrease the number of data bits transmitted over some subcarriers. If the channel continuous noise thereafter decreases (e.g., SNR increases), SRA can then be used to increase the number of data bits. While these techniques can effectively react to changing continuous noise conditions, impulse noise protection is largely unaffected by bit distribution settings and seamless rate adaptation.
Impulse noise in DSL systems usually causes erasure of an entire modulated signal for a relatively short period of time, regardless of the number of bits allocated to the entire channel or to particular subcarriers. Forward error correction (FEC) is a means to combat impulse noise in DSL and other communication systems. An FEC encoder generates a certain amount of redundancy bytes for each block of transmitted data bytes. The redundancy bytes are then added to the data bytes to form an FEC codeword. At the receive side, the FEC decoder uses redundancy bytes for recovering (correcting) a certain amount of corrupted data bytes, and thereby ensures that when a small number of bytes in a codeword are corrupted, the original data transmitted in the codeword can be recovered. In general, the number of error bytes that can be corrected by FEC is half of the number of redundancy bytes included in the codeword. Thus, increasing FEC redundancy adds further FEC protection against impulse noise while effectively decreasing the data rate, and vice versa, wherein the goals of impulse noise protection and data rate involve a tradeoff.
In addition to redundancy, FEC encoders also provide interleaving (IL) to combat impulse noise. An interleaver (at the transmit side) segments the FEC codewords or blocks into smaller portions (segments) after the addition of FEC redundancy bytes, with segments from different codewords being mixed in a certain order prior to bit distribution and modulation. The order of segment mixing is so that segments belonging to the same FEC codeword are placed as far as possible from each other. This results in the bytes of the same codeword being spread out over time, whereby impulse noise corruption of the transmitted stream of data during any given short period of time results in corruption of only one or a few segments belonging to a particular codeword or block, causing fewer errors in each reassembled (e.g., de-interleaved) codeword at the receive side. Thus, FEC redundancy allows correction of a certain amount of corrupted data in each codeword, and interleaving helps to reduce the amount of corrupted bytes in the individual codewords, whereby DSL systems may effectively combat a given amount of impulse noise in the communication channel. However, interleaving requires buffer memory at the transmitter and receiver modems and introduces latency in the transferred data. Also, as discussed above, increasing FEC capabilities requires more redundancy bytes to be introduced, and reduces the data rate. Thus, there is a tradeoff between impulse noise protection and data rate in DSL systems.
The parameters for impulse noise protection mechanisms, such as FEC and interleaving in DSL systems, have conventionally been set up at system installation. For example, interleaver parameters may include the code word length (i.e., block size), the number of redundancy bytes, the block size, and the interleaver depth. These parameters are typically determined with the goal of protecting against individual byte errors and achieving a prescribed error protection length (which is defined as the number of sequential corrupted bytes that can be correctly recovered). However, impulse noise characteristics for any specific installation are generally changing in time. Consequently, at some later point in time, since the impulse noise characteristics may have changed, and the interleaver parameters have not changed, transmission errors may occur. Accordingly, it is desirable to alter the interleaver depth and/or data rate in order to optimize the interleaver with respect to error correction. In addition, a change in the data rate may impact the interleaver delay or result in a change in error protection, which may further necessitate a change in the interleaver parameters such as the interleaver depth to fulfill the requirements for the minimum error protection. Consequently, it is advantageous for the interleaver depth to be altered during operation of the DSL system.
One prior art solution proposed to adjust the interleaver depth is to shut down the data communication system entirely for a defined period of time during which new interleaver parameters based on the new impulse noise environment are generated. The system is then reactivated. This solution, however, has some disadvantages in that data communication is completely interrupted for several seconds. In certain applications, for example, video streaming or telephony, such a solution is unacceptable. Another solution has proposed supporting changes in the interleaver depth without an interruption in service, however, such changes require that minimum interleaver depth be an integer multiple of the block length of the data (code word length) being interleaved. In such instances, the granularity of the modifications is disadvantageously large, thereby severely hampering the ability to optimize the communication system. The prior art is based on an interleaver that is restricted to values of D=M*l+1. Changes occur only in that granularity. The effect is that changes of D lead to gaps in data transmission of “l2”. A usual value of l is for example 30, so a change in D by l will lead to a jump in delay of 900 Bytes. To hide these jumps outside the transceiver a continuous buffering has to be added that my lead to an additional (not desired) continuous latency.
Accordingly, there is a need for improved impulse noise protection methods and apparatus to combat changing impulse noise in transmission channels of DSL and other communication systems.